'use strict';
/**
 * @name 莫凡后端状态码,云应用返回值
 * @version 0.0.1
 * @author xiech
 * @Time 2020年08月20日10:11:53
 */

const error_log = '[morefun:错误日志] ';

module.exports = {

  /*
   * 统一返回体，返回前端页面
   *
   * @param {number} code 返回码
   * @param {Object} data 返回数据
   * @return {Object} reobj 返回体
   */

  async basicode(code, data) {
    // 云应用标准返回参数
    const reobj = {
      errorCode: 0,
      errorMessage: 'ok',
      success: true,
      data,
    };

    /*
     * 异常处理
     * 60** 默认异常
     * 70** 参数异常
     * 80** 系统异常
     */
    if (code) {
      reobj.errorCode = code;
      reobj.success = false;
      switch (code) {
        case 6000:
          reobj.errorMessage = '默认异常！';
          break;
        case 7000:
          reobj.errorMessage = '参数异常或者未授权！';
          break;
        case 8000:
          reobj.data = String(data);
          reobj.errorMessage = '系统异常！';
          break;
        default:
          reobj.errorMessage = '其他异常！';
          break;
      }
      if (data.result) {
        reobj.data = data.result;
      }
      if (data.errorMessage) {
        reobj.errorMessage = data.errorMessage;
      }
      // 状态码错误日志记录
      this.ctx.logger.error(`${error_log}:状态码错误日志记录`, reobj.errorMessage, reobj.data);
    }
    return JSON.stringify(reobj);
  },
};